import { BasicFetchResult, BasicFetchUserInfoResult } from '@/api/model/baseModel'
import { RoleEnum } from '@/enums/roleEnum'
import { UserInfo } from '/#/store'
import { RouteRecordRaw } from '/#/types'

/**
import { *asApi } from '@/api/setting/delivery';
import { AppRouteModule } from '/#/types';
import { RouteRecordRaw } from 'vue-router';
import { UserInfo } from '../../../../types/store.d';
import { type } from '../../../hooks/event/useEventListener';
import { RoleEnum } from '/@/enums/roleEnum';
 * @description: Login interface parameters
 */
export interface LoginParams {
  username: string
  password: string
}

export interface RoleInfo {
  roleName: string
  value: string
}

/**
 * @description: Login interface return value
 */
export interface LoginResultModel {
  userId: string | number
  token: string
  role: RoleInfo
  access_token: string
}

/**
 * @description: Get user information return value
 */
export interface GetUserInfoModel {
  roles: RoleInfo[]
  // 用户id
  userId: string | number
  // 用户名
  username: string
  // 真实名字
  realName: string
  // 头像
  avatar: string
  // 介绍
  desc?: string
}

interface getInfoModel {
  codes: string[]
  roles: RoleEnum[]
  routers: RouteRecordRaw[]
  userInfo: UserInfo
}

/**
 * 获取用户信息
 */
export type getUserInfoResultModel = BasicFetchUserInfoResult<getInfoModel>
export type getLoginResultModel = BasicFetchUserInfoResult<LoginResultModel>
